import numpy as np, matplotlib.pyplot as pltnp.random.seed(42)fs=128; t=np.arange(0,10,1/fs)sig=np.sin(2*np.pi*10*t)*(t<5)+np.sin(2*np.pi*6*t)*(t>=5)+0.4*np.random.randn(len(t))Nw=256; H=64; w=np.hanning(Nw)frames=[sig[i:i+Nw]*w for i inrange(0,len(sig)-Nw,H)]S=np.array([np.abs(np.fft.rfft(f)) for f in frames]).Tf=np.fft.rfftfreq(Nw,1/fs); tt=np.arange(S.shape[1])*H/fsplt.figure(figsize=(7,3))plt.imshow(20*np.log10(S+1e-6), aspect='auto', origin='lower', extent=[tt[0],tt[-1],f[0],f[-1]])plt.xlabel("Tiempo [s]"); plt.ylabel("Frecuencia [Hz]")plt.title("Espectrograma sintético EEG (10→6 Hz)"); plt.colorbar(label="dB")plt.tight_layout(); plt.show()
Figura 1: Espectrograma (STFT) de señal sintética estilo EEG.
Representaciones en imágenes (2/2)
Intensidad/gradientes, texturas (Haralick/GLCM).
Histogramas locales; evitar paletas rainbow.
Deep: CNN (clasif.), UNet (segmentación).
Ejemplo: RM rodilla — cartílago. Máscaras sintéticas para medir Dice/IoU.